<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .box {
      width: 200px;
      height: 200px;
    }
  </style>
</head>

<body>
  <h1>根据CSS选择器来获取DOM元素</h1>
  <div class="box">123</div>
  <div class="box">abc</div>
  <p id="nav">导航栏</p>
  <ul class="nav">
    <li>测试1</li>
    <li>测试2</li>
    <li>测试3</li>
  </ul>

  <script>
    /* 一、选择匹配的"第一个"元素   语法：document.querySelector('css选择器')
    参数：包含一个或多个有效的CSS选择器字符串
    返回值:CSS选择器匹配的第一个元素，一个HTMLElement对象,如果没有匹配到，则返回null */

    //1.获取匹配的第一个元素
    // const box = document.querySelector('div')
    // const box = document.querySelector('.box')
    // console.dir(box)
    // const nav = document.querySelector('#nav')
    // nav.style.color = 'red'  //获取一个元素，可以直接操作修改样式
    // console.dir(nav)
    //我要获取第一个小li
    // const li = document.querySelector('ul li:first-child')
    // console.log(li)
    // console.dir(li)


    /* 二、选择匹配的多个元素   语法：document.querySelectorAll('css选择器') 
    参数：包含一个或多个有效的CSS选择器字符串
    返回值:CSS选择器匹配的NodeList对象集合，一个HTMLElement对象,如果没有匹配到，则返回null 
    得到的是一个（伪数组）：1.有长度有索引号  2.但是没有pop() push()等方法*/

    //我要获取所有的小li
    // const lis = document.querySelectorAll('ul li')
    // console.log(lis)

    //获取元素  for循环遍历伪数组
    // const lis = document.querySelectorAll('.nav li')
    // // console.log(lis)
    // for (let i = 0; i < lis.length; i++) {
    //   console.dir(lis[i])
    // }

    // const nav = document.querySelector('#nav')
    // console.dir(nav)
    // const nav1 = document.querySelectorAll('#nav')
    // console.dir(nav1)
    // nav1[0].style.color = 'yellow'
  </script>
</body>

</html>